package com.atguigu.tree;

/**
 * @author shkstart
 * @create 2021-08-16 21:28
 */
public class ArrBinaryTreeDemo {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6,7};
        ArrBinaryTree arrBinaryTree = new ArrBinaryTree(arr);
        arrBinaryTree.preOrder();//后序：4,5,2,6,7,3,1
    }

}
//编写一个ArrayBinaryTree, 实现顺序存储二叉树遍历

class ArrBinaryTree {
    //创建一个数组
    private int arr[];

    public ArrBinaryTree(int[] arr) {
        this.arr = arr;
    }
    //重载preOrder
    public void preOrder(){
        this.preOrder(0);
    }
    //顺序存储二叉树

    /**
     *
     * @param index//从数组哪一个坐标开始
     */
    public void preOrder(int index){
        if (arr==null||arr.length==0){
            System.out.println("数组为空，无法按照二叉树的前序排列");
        }
        //输出对应的数字
        System.out.println(arr[index]);
        //输出左节点
        if ((index*2+1)<arr.length){
            preOrder(index*2+1);
        }

        //输出右节点
        if ((index*2+1)<arr.length){
            preOrder(index*2+2);
        }

    }
}
